<?php
require_once 'PhpMailer.class.php';
include_once 'Sessao.class.php';

/**
 * Classe responsavel em enviar email quando ocorrer algum erro de exceção
 */
class Excecao {
    /**
     * Método __construct() responsavel em receber objeto contendo descrição do erro.
     *
     * @param objeto $e Deve receber a exeção gerada
     * @example catch(PDOException $e)
     */
    function __construct($e) {
       
        if ($_SERVER['HTTP_HOST'] == 'localhost' || $_SERVER['HTTP_HOST'] == 'sigevent.dev') {
            $mensagem = "<b>Numero do erro:     </b> " . $e->getCode() . ";\n\n";
            $mensagem .= "<b>Arquivo:           </b> " . $e->getFile() . ";\n\n";
            $mensagem .= "<b>Linha:             </b> " . $e->getLine() . ";\n\n";
            $mensagem .= "<b>Mensagem:          </b> " . $e->getMessage() . ";\n\n";
            $mensagem .= "<b>Acoes ate o erro   </b><pre> " . $e->getTraceAsString() . "</pre>;\n\n";
            print_r($mensagem);
            exit;
        } else {
            $sessao = new Sessao();
            $mensagem = "<b>Numero do erro:     </b> " . $e->getCode() . ";<br /><br />";
            $mensagem .= "<b>Arquivo:           </b> " . $e->getFile() . ";<br /><br />";
            $mensagem .= "<b>Linha:             </b> " . $e->getLine() . ";<br /><br />";
            $mensagem .= "<b>Mensagem:          </b> " . $e->getMessage() . ";<br /><br />";
            $mensagem .= "<b>Cliente           </b>:" . $sessao->getClienteUrl() . ";<br /><br />";
            $mensagem .= "<b>Acoes ate o erro   </b><pre> " . $e->getTraceAsString() . "</pre>;<br /><br />";
        }

        $mail = new EnviarEmail();
        $mail->FromName = "Sistema";
        $mail->AddAddress("erros@bcsautomacao.com.br");
        $mail->Subject = "Erro Sistema";
        $mail->Body = $mensagem;
        $mail->Send();
        $mail->SmtpClose();
    }
}